
import java.util.Stack;

/**
 * @author LKQ
 * @date 2021/12/23 19:36
 * @description 使用栈
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        ListNode listNode6 = new ListNode(6);
        ListNode listNode5 = new ListNode(5, listNode6);
        ListNode listNode4 = new ListNode(4, listNode5);
        ListNode listNode3 = new ListNode(3, listNode4);
        ListNode listNode7 = new ListNode(6, listNode3);
        ListNode listNode2 = new ListNode(2, listNode7);
        ListNode listNode1 = new ListNode(1, listNode2);
        ListNode listNode = solution.reverseList(listNode1);
        System.out.println(listNode);
    }
    public ListNode reverseList(ListNode head) {
        if(head == null ) {
            return null;
        }
        ListNode ans = new ListNode(0);
        ListNode temp = ans;
        Stack<ListNode> stack = new Stack<>();
        while(head != null) {
            stack.push(head);
            head = head.next;
        }
        while (!stack.empty()) {
            temp.next = stack.peek();
            temp = temp.next;
            stack.pop();
        }
        temp.next = null;
        return ans.next;
    }

}
